﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Controller;

namespace QLKS
{
    public partial class FrmAccountType : Form
    {
        Controller_Employee cont_emp= new Controller_Employee();
        DataTable dtAcc, dtLoaiAcc;
        public FrmAccountType()
        {
            InitializeComponent();
        }

        

        private void FrmAccountType_Load(object sender, EventArgs e)
        {            
            doCreateTreeView();
            if (rdbCoTk.Checked == true)
            {
                Enable_Control(false);
                GetListUserCoTK();
                lblThongbao.Text = "";
            }
        }
        public void GetListAcctype()
        {
            cmbLoaiNV.DataSource = cont_emp.Select_AccType().Tables[0];
            cmbLoaiNV.DisplayMember = "NameType";
            cmbLoaiNV.ValueMember = "IDType";
        }

        public void doCreateTreeView()
        {
            string Acctype=null;
            string AccnName = null;
            treeView_Quyen.Nodes.Clear();
            if ((dtLoaiAcc = cont_emp.Select_AccType().Tables[0]) == null)
            {
                MessageBox.Show("Không tìm thấy loại Account");
                return;
            }
            //TreeNode nodeGoc = new TreeNode("Danh sách tài khoản", 0, 1);
            //treeView_Quyen.Nodes.Add(nodeGoc);

            for (int i = 0; i < dtLoaiAcc.Rows.Count;i++ )
            {
                Acctype = dtLoaiAcc.Rows[i]["NameType"].ToString().TrimEnd(); 
                treeView_Quyen.Nodes.Add(Acctype);
                ///Duyệt danh sách tài khoản
                dtAcc = cont_emp.Select_AcountOfType(Acctype).Tables[0];
                for (int j = 0; j < dtAcc.Rows.Count; j++)
                {
                    AccnName = dtAcc.Rows[j]["Acc"].ToString().TrimEnd();
                    treeView_Quyen.Nodes[i].Nodes.Add(AccnName);
                }
            }
            treeView_Quyen.ExpandAll();
   
        }

        private void rdbChuacoTK_CheckedChanged(object sender, EventArgs e)
        {
            Enable_Control(false);
            GetListUserNotAcc();
            lblThongbao.Text = "*Nháy đúp để thêm tài khoản mới";
        }

        private void rdbCoTk_CheckedChanged(object sender, EventArgs e)
        {
            Enable_Control(false);
            GetListUserCoTK();
            lblThongbao.Text = "";
        }

        private void Enable_Control(bool status)
        {
            txtPass.Enabled = status;
            txtTaiKhoan.Enabled = status;
            cmbLoaiNV.Enabled = status;
            btn_Save.Enabled = status;
        }

        private void GetListUserNotAcc()
        {
            DataSet ds = cont_emp._Select_EmployNOTAcc();
            if (ds.Tables.Count != 0)
                dgvDSNhanVien.DataSource = ds.Tables[0];
        }

        private void GetListUserCoTK()
        {
            DataSet ds = cont_emp.Select_EmployAcc();
            if (ds.Tables.Count != 0)
                dgvDSNhanVien.DataSource = ds.Tables[0];
        }

        private void dgvDSNhanVien_DoubleClick(object sender, EventArgs e)
        {
            if (rdbChuacoTK.Checked == true)
            {
                int r = dgvDSNhanVien.CurrentRow.Index;
                string maNV = dgvDSNhanVien.Rows[r].Cells[0].Value.ToString();
                txtMaNV.Text = maNV;
                Enable_Control(true);
                GetListAcctype();
            }
        }

        private void btn_Save_Click(object sender, EventArgs e)
        {
            if (cont_emp.Insert_newAcc(txtMaNV.Text, txtTaiKhoan.Text, txtPass.Text, cmbLoaiNV.SelectedValue.ToString()))
            {
                MessageBox.Show("Thêm tài khoản thành công!","Thông báo");
                rdbCoTk.Checked = true;
                doCreateTreeView();
                txtMaNV.Clear();
                txtPass.Clear();
                txtTaiKhoan.Clear();
                cmbLoaiNV.DataSource = null;
            }
            else
                MessageBox.Show("Không thêm được. Vui lòng kiểm tra lại!","Lỗi");
        }

        private void treeView_Quyen_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode chon = treeView_Quyen.SelectedNode;

            if (chon == null)
                return;

        }


    }
}
